Arduino Uno使用esp8266

您所在的位置:网站首页 arduino esp8266-01s温湿度 Arduino Uno使用esp8266

Arduino Uno使用esp8266

#Arduino Uno使用esp8266| 来源: 网络整理| 查看: 265

1.先使用ESP8266-01手动连接WIFI

在这里插入图片描述 在这里插入图片描述

2.拷贝代码(注意:串口线接的是8,9口) #include SoftwareSerial mySerial(8, 9); // RX, TX //模拟一个软串口 void setup() { Serial.begin(9600);//设置硬串口波特率 Serial.println("ESP8266 WIFI Test"); while (!Serial) {//串口是否准备好。 ; } Serial.println("hardware serial!"); mySerial.begin(9600);//设置8266的波特率为9600 mySerial.println("software serial!"); } void loop() { if (mySerial.available())//获取从软串口读取有效的字节数 { Serial.write(mySerial.read());//硬串口写软串口中读取的数据 } if (Serial.available()) {//获取从硬串口读取有效的字节数 mySerial.write(Serial.read());//软串口写硬串口中读取的数据 } }

打开Arduino IDE串口监视器 选择波特率9600,下方设为NL和CR 只有出现了ERROR才是运行成功(如果一直没有就把两个波特率改为115200再试下) 在这里插入图片描述 接下来开始依次运行AT命令

AT AT+CWMODE=1 设置模组为STA模式 连接WiFi的模式 AT+RST //复位ESP8266模块(可以不用) AT+CWLAP //查询附近 WIFI(可以不用) AT+CWJAP="ntxz","12345678" //连接 WIFI AT+CIPMUX=0 //设置单连接 AT+CIPMODE=1 //设置 tcp透传 AT+CIPSTART="TCP","dtu.heclouds.com",1811 //连接onenet透传服务器 AT+CIPSEND //开启tcp透传 开始发送数据

因为我用的是TCP透传,所以开发中最后我们还需要发送登录报文,只需要在输入框输入再发送就行,最后的脚本需要自己编写,后面会介绍 在这里插入图片描述 命令执行结果如下图所示: 在这里插入图片描述

3.自动联网及发送数据(需要先手动连网一次,记得把串口线换到0,1) #include void setup() { Serial.begin(9600);//设置硬串口波特率 while (!Serial) {//串口是否准备好。 ; } do{ Serial.print("AT+CWJAP=\"ntxz\",\"12345678\"\r\n"); //连接WIFI delay(5000); }while(!Serial.find("OK")); do{ Serial.print("AT+CIPSTART=\"TCP\",\"dtu.heclouds.com\",1811\r\n"); delay(1000); }while(!Serial.find("OK")); do{ Serial.print("AT+CIPMODE=1\r\n"); delay(1000); }while(!Serial.find("OK")); do{ Serial.print("AT+CIPSEND\r\n"); delay(1000); }while(!Serial.find("OK")); Serial.print("你的登录报文"); delay(500); } void loop() { int a=23; //模拟上传数据 int b=45; //模拟上传数据 delay(2000); Serial.print(String(int(a))+String(int(b))); //发送数据至onenet if(Serial.find("1")){ //接收onenet下发的命令 Serial.print("开始浇水!!!"); }else if(Serial.find("0")){ Serial.print("停止浇水!!!"); } delay(2000); }

运行结果: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

其他问题

官方脚本下载:

https://upfiles.heclouds.com/123/ueditor/2017/04/05/d7ed57e61270a67f640338cb6a00a4b4.zip

因为TCP透传需要编写lua脚本,在最后修改

function device_data_analyze(dev) local t={} local a=0 -- 添加用户自定义代码 -- -- 例如: -- local s = dev:size() add_val(t,"humidity",a,dev:bytes(1,2)) --添加到datastream数据流名称 add_val(t,"level",a,dev:bytes(3,2)) dev:response() dev:send("received") -- return $1,$2 -- -- 例如:2345 23就是humidity的 45就是level的 -- return s,to_json(t) end

https://blog.csdn.net/Alvarez/article/details/103741643



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3